import { direct_drag_eventBind } from './cla_direct_drag_eventBind';

const direct_drag_dataManaTag = 'direct_drag_dataMana';

class direct_drag_dataMana {
  get [Symbol.toStringTag]() {
    return direct_drag_dataManaTag;
  }

  /**
   * 对 该元素 的信息 集
   * @param {HTMLElement} element
   */
  constructor(element) {
    this.targetEl = element;
  }

  /**
   * 操作 元素
   * @type {HTMLElement}
   */
  targetEl;

  /**
   * 元素 按下时 元素 所处的位置 --top
   * @type  {number}
   */
  startTop;

  /**
   * 元素 按下时 元素 所处的位置 --top
   * @type  {number}
   */
  startLeft;

  /**
   * 鼠标 在 元素 mouseDown 时位置 -- top
   * @type  {number}
   */
  mouseTop;

  /**
   * 鼠标 在 元素 mouseDown 时位置 -- left
   * @type  {number}
   */
  mouseLeft;

  /**
   * cssVar 变量 管理
   * @type {listenCssVar_mana}
   */
  cssvarObj;

  /**
   * 特定 注入 this 绑定事件
   * @type {direct_drag_eventBind}
   */
  eventBind = new direct_drag_eventBind();

  /**
   * event 的 管理 集
   * @type {unit_listenEvent_mana}
   */
  eventMana;

  /**
   * 帧率 锁定
   * 默认 未锁定 可以执行 动画 操作
   * @type {boolean}
   */
  framekey_lock = false;
}

export { direct_drag_dataMana };
